【熱血一次就上癮】
分享特地從高雄上來上一天課的熱血夥伴,燒腦完的熱血感想。
真要說我推薦上課的順序,先【#單元測試實戰營】再【#演化式設計:#TDD與持續重構】是好一點的。
至於【#極速開發】,比較沒有依賴關係。先上,馬上受用。
後上,當你上完【單元測試】跟【重構與TDD】之後,你可能就會發現自己寫代碼的速度,就像你看不會寫代碼的人一樣。
尤其是,參加完【熱血 Coding Dojo】的社群活動,發現其他參加過【極速開發】的人,寫代碼怎麼比你順那麼多時,那種衝擊感會更強烈一點。
此外補充一些,三月份的【C#進階設計-#從重構學會高易用性與高彈性API設計】跟五月份的【Clean Coder:#DI與AOP進階實戰】,也都是進階的實戰課。
上課的方式,依然沒有投影片,依然會給需求讓大家動手做,依然會給挑戰讓大家感受卡點,依然不會直接介紹框架,而是讓你用基本的設計與原則,搞定你的需求跟卡點,再用框架來提昇效率和彈性。
上課,就是要學一些網路文章、書上、影片上找不到或不容易自己理解的內容囉。
繼兩個月前參加 TDD 與重構課程以後,想不到這麼快又與 91 哥見面,上個週末又參加了一堂單元測試實戰課程,因為一樣有蠻多感想的,所以還是來記錄一下心得 XD
這次課程只有一天,完全聚焦在「怎麼寫有品質的單元測試」,沒有廢話,句句是精華。印象最深刻的就是課程開始的第一個小時內就學到了超好用的一招解耦手法,直接秒殺上次回去練習時覺得用 DI 很難處理的 Legacy Code 情境,當然也連帶理解了之前會覺得很難解,是因為對於單元測試的觀念還不夠完整。
基本上這次課程進行的模式跟重構那堂差不多,用壓時間實作需求的方式推進,雖然不強制採取 Pair Programming,但用同樣語言的人還是被鼓勵坐一起,因為兩個人會一起被同樣的難題卡住,然後一起相看兩無言。果不其然,看似無害的第一題需求才剛完成,馬上就被緊接而來的測試需求逼死。原想說自從上次課程以來也算是練習過一些單元測試的撰寫了,不至於被秒殺吧,嗯,還真的被秒殺了呢。這逼死人的不是多嚇人的程式碼,用 inline 和三元運算甚至能寫成僅僅一行。透過這個實作,入手了上面講的解耦手法,原來不用什麼奇形怪狀的手段,善用 OOP 的特性就可以輕鬆解決難搞的耦合,在學習的當下內心真的是拍案叫絕激動不已啊。
上午的內容主要就在打實單元測試的基礎觀念,到了下午的實作題才開始納入測試框架。跟使用其它任何框架一樣,沒有把框架代理的任務原理先摸清楚就直接享受便利,免不了都會有毛毛的感覺,像這樣先徒手走過一輪再用框架的學習模式讓人感覺還是挺紮實的。使用 Mock Framework 以後,產生假物件做測試變得更有效率且直觀了,甚至可以輕易實現原本覺得很難、很麻煩或不可能的測試,印證了很多事情「沒有做不到,只是不知道」的道理。最後一道實作題是集一日大成的需求,雖然不難但因為不夠熟練新掌握的觀念、技巧(還有打 code 太慢)最後也只完成一半,殘念得斯,回家後持續練習還是不可少的。
兩個月前的重構課程中,有關於單元測試的部分是從 TDD 的觀點出發,關注的是如何從一開始就不讓路走歪;而這次課程的學習角度是偏向處理既有的 Legacy Code,在測試案例規格化的觀念上有更多著墨,以直接學到的實務技巧來說,這次比上次吸收的程度更大,但應該是我太廢了所以上次的重構課程顯得有點越級打怪,不過從前次的課程被啟發很多觀念也是完全不假。
雖然兩次上課都打了那麼多感想,但真要推薦也很難推薦哪門課比較適合先上或後上,畢竟我覺得自己也是因為有上次課程的觀念為底,才讓這次課程能夠吸收得較好。如果是「想要試試 91 系列課程」,就蠻推薦有學習單元測試需求的朋友來試試看這堂,時間只有一天、價格也硬是比重構課程低一半以上,雖然直接被灌輸實務觀念這件事是無價的,但金錢有時候也是很現實必須考量的要素之一啊哈哈,這堂課就算觀念沒有被啟發,至少一定學得到技術。
這次課程還有覺得超值回票價的一點就是,除了單元測試的實戰,91 還加碼開講了關於「架構設計」、「測試導入團隊」的觀念、「整合測試」以及「OOP 介面拆分聚合提升可測試性」的原則等等,都是從實務的角度出發,雖然不一定與單元測試直接關聯,但在軟體開發中卻都是息息相關的環節,有些議題尚未遇過感受還不深,但先記下來,我想有朝一日會碰上的。不過不確定是不是每次上課都有這一趴,感覺比較算是隨緣的部分,但應該也要歸功於同學蠻踴躍發問的啦,所以可以保證的一點是學員多提問 & 主動回答對大家都有幫助,很容易撿到寶啊!
說到最值回票價的部分,莫過於新學到的測試手法直接應用於最近寫面試試題上了,所謂來得早不如來得巧。(好像應該等測驗有過再來說嘴)
總之再次感謝雅令老ㄙ張仁瀚的相揪,雅令老ㄙ真的很優秀,第一題我被卡死的時候他很快就想到其它解法而且還實作完成惹,學長覺得慚愧R
也謝謝 91 哥除了熱血上課還各種送書,書桌上待看的書本堆又變厚了...。
同時也有2部Youtube影片,追蹤數超過3萬的網紅Nora Hsu- Barrel Leaf,也在其Youtube影片中提到,如果你常看我的食譜,應不難發現我深愛巧克力 :9 (▼ 點開看更多 Click to open for more ▼) 平常除了自己做,也喜歡嚐試新口味,分享在部落格裡。 前陣子去逛家樂福,發現新推出的巧克力片,又忍不住買了三種最有興趣的口味嚐鮮,也想用影片的方式記錄分享心得。 Blog 文字心...
「clean code心得」的推薦目錄:
- 關於clean code心得 在 91 敏捷開發之路 Facebook 的最讚貼文
- 關於clean code心得 在 91 敏捷開發之路 Facebook 的最讚貼文
- 關於clean code心得 在 Nora Hsu- Barrel Leaf Youtube 的最佳貼文
- 關於clean code心得 在 Nora Hsu- Barrel Leaf Youtube 的最佳解答
- 關於clean code心得 在 Re: [請益] 關於clean code書籍選擇- 看板Soft_Job - 批踢踢實業坊 的評價
- 關於clean code心得 在 拯救資工系學生的基本素養—寫出Clean Code 的原則 - YouTube 的評價
- 關於clean code心得 在 Re: [心得] AmazingTalker/台灣樂天市場面試心得- soft_job 的評價
clean code心得 在 91 敏捷開發之路 Facebook 的最讚貼文
又燒到一位好朋友了。
國昭幫我起了個頭,單元測試、重構跟 TDD 要從 knowledge to skill 的路上,要在實務上起到 1+1 > 2 或戲劇化的綜效,寫代碼的速度、對工具的熟悉程度絕對是最重要的關隘之一。
這是為什麼我今年開始開新的課程時,在一月就先把【Visual Studio 極速開發】放在最前面的原因,如果你寫代碼的速度不夠快,對工具的熟悉程度,即便你了解了怎麼撰寫單元測試,怎麼重構、怎麼 TDD,最終在實務上仍然會碰到「我沒有時間做這些工程實踐」。
當然,原因有很多,一個是對這幾個工程實踐本身了解還不夠熟悉,就像有人覺得 TDD 會更花時間,相信上完【重構與 TDD 實戰營】的朋友只會覺得 TDD 才是加速開發的一環跟必殺技。
但即便熟悉了這樣的開發方式,TDD 跟單元測試都會伴隨著大量的測試代碼產生,如果寫代碼的速度本來就不快,就會更被這些大量必須的測試代碼拖慢速度,寫代碼時間被等比例放大,自然應付不了工作上的時程要求。
重構則是為了減少程式碼、呈現意圖、釐清職責、減少重複,有著大量的代碼調整跟修改的動作,沒有測試保護、沒有工具的 support、沒有理解每個動作的意義與關係並串成連續技的套路,重構是伴隨著極大量的風險跟時間成本的。
即使了解了重構、熟悉了工具,沒有測試保護的重構都是種如履薄冰的行徑。哪怕用了 ReSharper 或 JetBrains IDE 重構,弄壞測試的情況總會出乎你意料之外。
所以,【Visual Studio 極速開發】、【單元測試實戰營】、【重構與 TDD 實戰營】正是我為了讓大家學會如何達到 #簡單設計原則,#優雅 地寫出 “Clean Code” 所規劃的系列課程。
基本上就是融合了 Kent Beck, Uncle Bob 跟 Martin Fowler 三位大師所強調工程實踐的技能。
當然,這三個領域(嚴格來說是四個),我也都有不少自己獨創的東西,這些東西也往往最讓已經有底子的朋友,感到驚豔與物超所值的地方。
謝謝 @張國昭 的推薦與心得,今年這幾門課還有名額的梯次如下:
▍重構與 TDD 實戰營, 2018/11, 台北, 剩12個名額:https://yihuode.io/activities/662
▍Visual Studio 極速開發, 2018/10, 台北, 剩10個名額:https://yihuode.io/activities/664
▍單元測試:今年開的梯次都已經額滿了,預計 九月 或 十月 台北會有一場加開場。如你想收到開課通知,請填寫這邊的表單:https://goo.gl/forms/25WTNr3ly6YtLOFt2
clean code心得 在 Nora Hsu- Barrel Leaf Youtube 的最佳貼文
如果你常看我的食譜,應不難發現我深愛巧克力 :9 (▼ 點開看更多 Click to open for more ▼)
平常除了自己做,也喜歡嚐試新口味,分享在部落格裡。
前陣子去逛家樂福,發現新推出的巧克力片,又忍不住買了三種最有興趣的口味嚐鮮,也想用影片的方式記錄分享心得。
Blog 文字心得 - https://www.barrelleaf.com/carrefour-choc-almond-pear-mint/
如果你有特別喜歡想推薦的巧克力,歡迎在下方留言推薦給我嚐試 :)
-----------------------------------------------------------------
不久前的巧克力品嚐文 CHOCOLATE TASTE ARTICLES
• 【Costco 好市多】Cemoi 82% 黑巧克力|2018 新版 - https://www.barrelleaf.com/cemoi-82-dark-choc/
• 【歐維氏】黃金比例77%黑巧克力|市售少見 高%全素/純素巧克力 - https://www.barrelleaf.com/always-77-chocolate/
• 【Lindt 瑞士蓮】 極醇85%, 香橙杏仁巧克力片, 海鹽巧克力片 - https://www.barrelleaf.com/lindt-orange-sea-salt/
-----------------------------------------------------------------
*訂閱電子報:http://eepurl.com/dvG9oL
*Subscribe to my Newsletter : http://eepurl.com/dvG9oL
------------------------------------------------------------------
你可能也感興趣 YOU MIGHT ALSO BE INTERESTED
• 自製 Reese's 巧克力花生球 (全素,無麵粉) - https://youtu.be/BdFLn9emN7s
• 全素偽金莎榛果巧克力球 (無糖,無麵粉) - https://youtu.be/huXaAzB2_gg
• 3樣食材 全素巧克力慕斯杯 (無糖) - https://youtu.be/fBHjREX2AgA
• Homemade Reese's Puffs Cereal (Vegan, GF) - https://youtu.be/BdFLn9emN7s
• Vegan Ferrero Rocher (Sugar-Free, GF) - https://youtu.be/huXaAzB2_gg
• 3-Ingredient Vegan Chocolate Pots (Sugar-Free) - https://youtu.be/fBHjREX2AgA
------------------------------------------------------------------
到其它地方找我 CONNECT WITH ME
• Blog - https://www.barrelleaf.com/
• Facebook - https://www.facebook.com/barrelleafstoastnotebook
• Instagram - https://www.instagram.com/barrelleaf
• Pinterest - https://www.pinterest.com/barrelleaf/
-----------------------------------------------------------------
可能對你有幫助 HELPFUL LINKS
• 食譜度量標準 + 常見問答集 FAQ - https://www.barrelleaf.com/recipe-measurement/
• 我的器具與食材 - https://www.barrelleaf.com/shop/
• iHerb 購物初體驗︱經驗&開箱 - https://www.barrelleaf.com/iherb-first-buy/
• iHerb 購物95折 折扣碼「MOK5777」- http://www.iherb.com/?rcode=MOK5777
• Recipe Mesurement + FAQ - https://www.barrelleaf.com/recipe-measurement/
• My Tool & Ingredients - https://www.barrelleaf.com/shop/
• My iHerb Haul- https://www.barrelleaf.com/iherb-first-buy/
• iHerb 5% Off Code「MOK5777」- http://www.iherb.com/?rcode=MOK5777
-----------------------------------------------------------------
如果你喜歡這個影片,請給我一個讚,鼓勵是我動力!
也歡迎訂閱我的頻道,之後會有更多的影片喔! 謝謝 :)
If you like this video, please give me a thumbs up & subscribe for more videos coming up!
You could also leave comments below to share your thoughts or what kind of recipe/video that you want to see.
Thank you all.
-----------------------------------------------------------------
新創FB社團,歡迎大家加入 :)
自然飲食小廚房 Healthy Clean Kitchen
https://www.facebook.com/groups/1224348334357692/
-----------------------------------------------------------------
連絡我 CONTACT
• 合作相關 - nora@barrelleaf.com
• 其它問題 - https://www.facebook.com/messages/t/barrelleafstoastnotebook
-----------------------------------------------------------------
*Note: This page contains affiliate links. Purchasing via my affiliate links supports more great content on this site at no additional cost to you.
此頁面含贊助連結,透過連結購買能透過第三方間接贊助此站,提供更豐富優質食譜與內容,您的購買並不會有任何多的附加費用。
clean code心得 在 Nora Hsu- Barrel Leaf Youtube 的最佳解答
前陣子買了這台動心很久的 PHILIPS飛利浦 廚神料理機(HR7629),使用了大約一個月左右,想來分享一下開箱照與使用心得,另外也有錄一些短的實際使用影片。
-----------------------------------------------------------------
完整介紹與細節 more details at
https://www.barrelleaf.com/philips-fp-hr7629/
*訂閱電子報:http://eepurl.com/dvG9oL
*Subscribe to my Newsletter : http://eepurl.com/dvG9oL
更多食譜 For more recipes,
please visit: https://www.barrelleaf.com/category/recipes/
-----------------------------------------------------------------
影片中的 IN THIS VIDEO
• 食物處理機 - http://bit.ly/phliips-fp
• Food processor - http://bit.ly/phliips-fp
-----------------------------------------------------------------
你可能感興趣 YOU MIGHT ALSO BE INTERESTED
• 全素藍莓偽乳酪蛋糕 (無麵粉,免烤) - https://www.barrelleaf.com/vegan-blueberry-layered-cheesecake/
• 全素巧克力南瓜乳酪蛋糕 (免烤,無麵粉) - https://www.barrelleaf.com/vegan-coconut-chocolate-mousse/
• 全素偽巧克力起司蛋糕 - https://www.barrelleaf.com/sugar-free-choc-cheesecake/
• Vegan Blueberry Layered Cheesecake (GF, No-Bake) - https://www.barrelleaf.com/vegan-blueberry-layered-cheesecake/
• Vegan Chocolate Pumpkin Cheesecake (No-Bake + GF) - https://www.barrelleaf.com/vegan-coconut-chocolate-mousse/
• Vegan Chocolate “Cheesecake” (Sugar-free, No-Bake, and GF) - https://www.barrelleaf.com/sugar-free-choc-cheesecake/
-----------------------------------------------------------------
到其它地方找我 CONNECT WITH ME
• Blog - https://www.barrelleaf.com/
• Facebook - https://www.facebook.com/barrelleafstoastnotebook
• Instagram - https://www.instagram.com/barrelleaf
• Pinterest - https://www.pinterest.com/barrelleaf/
-----------------------------------------------------------------
可能對你有幫助 HELPFUL LINKS
• 食譜度量標準 + 常見問答集 FAQ - https://www.barrelleaf.com/recipe-measurement/
• 我的器具與食材 - https://www.barrelleaf.com/shop/
• iHerb 購物初體驗︱經驗&開箱 - https://www.barrelleaf.com/iherb-first-buy/
• iHerb 購物95折 折扣碼「MOK5777」- http://www.iherb.com/?rcode=MOK5777
• Recipe Mesurement + FAQ - https://www.barrelleaf.com/recipe-measurement/
• My Tool & Ingredients - https://www.barrelleaf.com/shop/
• My iHerb Haul- https://www.barrelleaf.com/iherb-first-buy/
• iHerb 5% Off Code「MOK5777」- http://www.iherb.com/?rcode=MOK5777
-----------------------------------------------------------------
如果你喜歡這個影片,請給我一個讚,鼓勵是我動力!
也歡迎訂閱我的頻道,之後會有更多的影片喔! 謝謝 :)
If you like this video, please give me a thumbs up & subscribe for more videos coming up!
You could also leave comments below to share your thoughts or what kind of recipe/video that you want to see.
Thank you all.
-----------------------------------------------------------------
新創FB社團,歡迎大家加入 :)
自然飲食小廚房 Healthy Clean Kitchen
https://www.facebook.com/groups/1224348334357692/
-----------------------------------------------------------------
連絡我 CONTACT
• 合作相關 - nora@barrelleaf.com
• 其它問題 - https://www.facebook.com/messages/t/barrelleafstoastnotebook
• LINE@ - https://line.me/R/ti/p/%40epo5731x
-----------------------------------------------------------------
*Note: This page contains affiliate links. Purchasing via my affiliate links supports more great content on this site at no additional cost to you.
此頁面含贊助連結,透過連結購買能透過第三方間接贊助此站,提供更豐富優質食譜與內容,您的購買並不會有任何多的附加費用。
clean code心得 在 拯救資工系學生的基本素養—寫出Clean Code 的原則 - YouTube 的美食出口停車場
這集介紹Clean Code 的一些基本原則,身為資工系學生,除了通曉電腦科學與工程的知識之外,我們最重要的一件事就是要寫出好的程式碼,遵循Clean Code ... ... <看更多>
clean code心得 在 Re: [心得] AmazingTalker/台灣樂天市場面試心得- soft_job 的美食出口停車場
AmazingTalker CTO 回覆面試心得(此為AmazingTalker 人資部門代為轉發) ... 1 F 推strlen: 其實大家都知道你只是想問面試者DP跟clean code的理解而已 ... ... <看更多>
clean code心得 在 Re: [請益] 關於clean code書籍選擇- 看板Soft_Job - 批踢踢實業坊 的美食出口停車場
參考個人在約五年前所寫過對「無瑕的程式碼:敏捷軟體開發技巧守則 (中譯本)」一書的書評。
https://www.kenming.idv.tw/bk_clean-code_handbook_software_craftsmanship/
簡而言之,Clean Code 主要必須把持實踐的原則:
1. 對類別、方法、參數、變數賦予有意義的命名。
2. 對程式碼結構持續抱著重構的態度 (重構前一定要撰寫單元測試程式把關):
a). 每一個方法內的陳述控制在 30 行以內 (已是最大極致)。
b). 每一個方法傳遞的參數不得超過5個以內 (參數的資料結構設計議題)。
另,由於原 po 從事 ASP.NET 的開發,這是落在 展示層 (Presentation tier)內的 Web UI 端開發。要切記不要在如 Web Page (View)與 UI Controller 撰寫應用程式邏輯。
關於此點,可以參考個人最近所撰寫的一篇:實作 Enterprise MVC 巨觀結構的 POC-觀念篇
https://www.kenming.idv.tw/implement_enterprise-mvc_macro-view_poc_concept/
要能達成所謂 Clean Code 簡潔的效果,所需要軟體相關的技能,諸如所謂的物件導向觀念、GoF 設計模式的理解與活用、巨觀與微觀結構的設計等,這些是需要在軟體結構面設計的議題持續不斷地學習與體會箇中奧妙了。
======= 書評內容 =======
Clean Code 的原則就是:每一個函式 (function, or method),不超過10行,最好是5行
以內。天啊,這讓我很難以想像,我知道函式不能肥大,也不要有一堆的 if-then-else
or switch 之類的判斷式,但如何縮短為只有10行以內的寫作,我也很難理解。不過細讀
本書內容之後,總算能瞭解要如何作,當然,你更應該體會為何要這麼作。
簡而言之,程式寫作是一門「craftsmanship」,我還蠻喜歡中譯本將之翻為「工藝典範
」。它既要精確,卻也期望將程式寫作昇華為具有美感的作品。我覺得,稍具有良心與審
美觀的程式設計師,絕對不是只有滿足於「可以執行程式」。寫出來程式往往只是起點而
已,持續不斷地精煉 (也就是重構),讓程式整潔,軟體才有可能具彈性與維護性。往往
程式設計師只滿足於讓程式「順利運作」的狀態,有經驗豐富 (還有良心)的程式設計師
,知道那其實是一種專業上的自殺行為。
所以,事實上,寫程式就如同寫散文一般,程式寫得艱澀冗長讓人無法理解,就代表散文
寫作能力不佳。程式設計大師不認為他們在寫程式,而是在說故事。大師利用所選定的程
式語言機制,來幫助建造更豐富更具表達力的語言,讓這個語言可以用來說故事。而簡短
的函式,有意義的命名,以及漂亮的結構,則都有助於描述故事。
當然,要能寫好整潔的程式不是一蹴可幾的,那可是長期性的一種目標與方向。最重要的
應該是意願與職志,然後再來才是學習與鍛鍊應有的觀念與技巧。所以這也是為什麼與其
說程式設計是門科學,不如說程式設計是一門技藝更為貼切。為了要寫整潔的程式碼,你
必須先寫下糟糕的程式,然後去整理它! 對於程式碼,就是要義無反顧的重構它,讓品
質可以改善再提昇至另一個層次。程式如果看待只是一種製造,那麼當重做時就代表著額
外的花費;但當看待為設計,則重做代表的就是創造出價值。
喔,從本書我還學到了唯一最有效度量「程式品質」的單位-WTF (請自行查 Google)。
當 WTF 值越高,程式品質越差,沒有任何例外!
專案管理人員應該要重視這個指標的,絕對沒有其它指標比它更實用有效的。 >_<
所以,到底甚麼是 Clean Code? 為了這個詞彙,作者 Martin 還特別訪問了諸多軟體大師,請他們寫下對 Clean Code 的定義。我比較喜歡 Grady Booch (UML 三巨頭之一) 的解釋:
「Clean Code 是簡單又直接明瞭的,讀來就像一篇優美的散文。
Clean Code 絕不會掩蓋設計者的意圖,反而充滿著俐落的抽象概念,以及直接了當的程式控制敘述。」
其實每一個人應該也會有對 Clean Code 自己的一番解釋。對我而言,Clean Code 就是:
「簡潔有序,層次分明的程式碼。」
※ 引述《geroge0820 (可.....可惡)》之銘言:
: 小弟工作資歷尚淺 前一陣子才轉職
: 目前是用ASP.NET MVC進行網頁開發
: 因為自己還蠻菜的 想加強能力
: 不知道大家都怎麼選clean code的書
: 目前在網路上看到 clean code又是C#實作的是這一本
: 無瑕的程式碼 敏捷完整篇:物件導向原則、設計模式與C#實踐
: 想請問版上的各位 有沒有甚麼建議
--
FB社團:軟體設計鮮思維
https://www.facebook.com/groups/softthinking/
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.122.227
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1529470903.A.F8F.html
... <看更多>